Web SQL Database

Web SQL Database - це API для роботи з базою даних SQLite.

Web SQL Database у Javascript

Web SQL база даних у JavaScript

Web SQL база даних у ДжаваСкрипт

Робота з Web SQL базою даних

Web SQL база даних у JavaScript

SQL у JavaScript

ДжаваСкрипт & SQL

Використання Web SQL у JavaScript

HTML5 Web SQL Database

Web SQL Database & JavaScript

WebSQL дата база у ЯваСкрипт

WebSql Database дозволяє працювати з базою даних SQLite на стороні користувача (браузера) за допомогою JavaScript.

Не всі браузери підтримують Web SQL Database, так як Web SQL не являється стандартом.

За політикою безпеки браузера доступними є бази даних лише поточного домена.

Для того щоб підключитися до (відкрити) бази даних (БД) використовується метод openDatabase() в якому вказується назва БД, версія бази даних і запланований максимальний розмір у байтах.

Зазвичай браузери дозволяють максимальний об'єм БД для домену 5 Мб. Якщо потрібно більше ніж 5 Мб тоді браузер може запитати дозволу у користувача.

Метод openDatabase підключається до БД або створює нову якщо вказаної бази даних немає і повертає об'єкт Database відкритої БД.

Зверніть увагу що у Web SQL Database всі дії з базою даних відбуваються асинхроно. Усі методи для роботи з БД у Web SQL приймають функцію, яка виконуюєть асинхроно приймаючи необхідні дані у якості параметрів функції.

Після підключення БД необхідно створити транзакцію для виконання запитів до бази даних.

Транзакція (transaction) - це група послідовних запитів (операцій) до бази даних. Транзакція виконується успішно дотримуючись цілісність даних у БД незалежно від інших транзакцій або може не виконатася взагалі.

У Web SQL можна відкрити транзакцію для читання і запису за допомогою методу Database.transaction(), а також лише для читання - Database.readTransaction().

Обидва методи приймають функцію в якості параметра, яка виконується асинхроно після створення транзакції.

Після створення транзакції виконуються запити до бази даних за допомогою методу SQLTransaction.executeSql().

Зверніть увагу що кожного разу необхідно створювати таблицю у базі якщо її немає. Для цього необхідно виконати SQL запит: "CREATE TABLE IF NOT EXISTS `назва таблиці` (`назва стовбців`);" :

if(window.openDatabase){ var db = openDatabase("mydb","","test db", 2097152); db.transaction(function(tx){ //створюємо таблицю test якщо її немає tx.executeSql('CREATE TABLE IF NOT EXISTS `test` (`id` INTEGER PRIMARY KEY , `name`, `text`);'); // виконуємо подальші запити до таблиці... }); }else alert('Ваш браузер НЕ підтримує openDatabase.');

Зберігається база даних у системному католозі браузера.

Зазвичай при очищені кеш даних веб-перегляду браузера видаляються і бази даних Web SQL.

Приклад:

function queryDB(tx){ //виконуємо запит sql для отримання даних таблиці tx.executeSql('SELECT * FROM test;',[], querySuccess, errorCB ); } function querySuccess(tx, results){ //обробка результату запиту var len = results.rows.length; var s='<h3>таблиця test має рядків: ' + len+'</h3>'; s+='<table><tr><th>id</th><th>name</th><th>text</th></tr>'; for(i=0; i<len; i++) s+="<tr><td>" + results.rows.item(i).id + "</td><td>" + results.rows.item(i).name+'</td><td>'+results.rows.item(i).text+'</td></tr>'; s+='</table>'; document.getElementById('test').innerHTML=s; } function errorCB(t,err) { prompt("Виникла помилка при SQL запиті: ",err.message); } if(window.openDatabase){ var db = window.openDatabase("test_db", "", "Web SQL Databade", 200000); db.transaction(function(tx){ //створюємо таблицю якщо її немає tx.executeSql('CREATE TABLE IF NOT EXISTS `test` (`id` INTEGER PRIMARY KEY, `name`, `text`);'); //додаємо дані у таблицю tx.executeSql('INSERT INTO `test` (`name`, `text`) VALUES ("Web SQL"," Web SQL - база даних JavaScript '+Date()+'");');}); db.readTransaction(queryDB, errorCB); }else alert('Ваш браузер НЕ підтримує Web SQL Database');